package notice

import (
	"crypto/tls"
	"errors"
	"fmt"
	"gopkg.in/gomail.v2"
)

const (
	SENDER          = "service@dataqin.com"
	SENDER_PASSWORD = "19WQ2PFqtGv2q245"
	SMTP_ADDR       = "smtp.feishu.cn"
	SMTP_PORT       = 465
)

var WarnTempHtml = `<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title></title>
    <meta charset="utf-8" />

</head>
<body>
    <div class="qmbox qm_con_body_content qqmail_webmail_only" id="mailContentContainer" style="">
        <style type="text/css">
            .qmbox body {
                margin: 0;
                padding: 0;
                background: #fff;
                font-family: "Verdana, Arial, Helvetica, sans-serif";
                font-size: 14px;
                line-height: 24px;
            }

            .qmbox div, .qmbox p, .qmbox span, .qmbox img {
                margin: 0;
                padding: 0;
            }

            .qmbox img {
                border: none;
            }

            .qmbox .contaner {
                margin: 0 auto;
            }

            .qmbox .title {
                margin: 0 auto;
                background: url() #CCC repeat-x;
                height: 30px;
                text-align: center;
                font-weight: bold;
                padding-top: 12px;
                font-size: 16px;
            }

            .qmbox .content {
                margin: 4px;
            }

            .qmbox .biaoti {
                padding: 6px;
                color: #000;
            }

            .qmbox .xtop, .qmbox .xbottom {
                display: block;
                font-size: 1px;
            }

            .qmbox .xb1, .qmbox .xb2, .qmbox .xb3, .qmbox .xb4 {
                display: block;
                overflow: hidden;
            }

            .qmbox .xb1, .qmbox .xb2, .qmbox .xb3 {
                height: 1px;
            }

            .qmbox .xb2, .qmbox .xb3, .qmbox .xb4 {
                border-left: 1px solid #BCBCBC;
                border-right: 1px solid #BCBCBC;
            }

            .qmbox .xb1 {
                margin: 0 5px;
                background: #BCBCBC;
            }

            .qmbox .xb2 {
                margin: 0 3px;
                border-width: 0 2px;
            }

            .qmbox .xb3 {
                margin: 0 2px;
            }

            .qmbox .xb4 {
                height: 2px;
                margin: 0 1px;
            }

            .qmbox .xboxcontent {
                display: block;
                border: 0 solid #BCBCBC;
                border-width: 0 1px;
            }

            .qmbox .line {
                margin-top: 6px;
                border-top: 1px dashed #B9B9B9;
                padding: 4px;
            }

            .qmbox .neirong {
                padding: 6px;
                color: #666666;
            }

            .qmbox .foot {
                padding: 6px;
                color: #777;
            }

            .qmbox .font_darkblue {
                color: #006699;
                font-weight: bold;
            }

            .qmbox .font_lightblue {
                color: #008BD1;
                font-weight: bold;
            }

            .qmbox .font_gray {
                color: #888;
                font-size: 12px;
            }
        </style>
        <div class="contaner">
            <div class="title" style="color:red">上链任务异常提醒</div>
            <div class="content">
                <p class="biaoti">以下上链任务有异常，请注意！</p>
                <b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"></b><b class="xb4"></b></b>
                <div class="xboxcontent">
                    <div class="neirong">
                        <p>链信息： %s</p>
                        <p style="color:red">失败任务：</p>
                        <p>&nbsp;&nbsp;总数： %d</p>
                        <p>&nbsp;&nbsp;最新10条：</p>
                        <p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%s</p>
                        <p style="color:red">超时任务：</p>
                        <p>&nbsp;&nbsp;总数： %d</p>
                        <p>&nbsp;&nbsp;最新10条：</p>
                        <p><i>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;%s</p>
                        <div class="line">如已处理，请忽略本邮件。<br>超时任务将自动尝试重新上链。</div>
                    </div>
                </div>
                <b class="xbottom"><b class="xb4"></b><b class="xb3"></b><b class="xb2"></b><b class="xb1"></b></b>
            </div>
        </div>
        <style type="text/css">
            .qmbox style, .qmbox script, .qmbox head, .qmbox link, .qmbox meta {
                display: none !important;
            }
        </style>
    </div>
</body>
</html>`

var KafkaWarn = `
以下上链任务有异常，请注意！
链信息：%s
失败任务：
   总数： %d
   最新10条：
       %s
超时任务：
   总数： %d
   最新10条：
       %s
如已处理，请忽略本告警。
超时任务将自动尝试重新上链。
`

// MailboxConf 邮箱配置
type MailboxConf struct {
	// 邮件标题
	Title string
	// 邮件内容
	Body string
	// 收件人列表
	RecipientList []string
	// 发件人账号
	Sender string
	// 发件人密码
	SPassword string
	// SMTP 服务器地址
	SMTPAddr string
	// SMTP端口
	SMTPPort int
}

func SendEmail(title, body string, emails []string) error {
	var mailConf MailboxConf
	mailConf.Title = title
	mailConf.Body = body
	mailConf.RecipientList = emails
	mailConf.Sender = SENDER
	mailConf.SPassword = SENDER_PASSWORD
	mailConf.SMTPAddr = SMTP_ADDR
	mailConf.SMTPPort = SMTP_PORT

	m := gomail.NewMessage()
	m.SetHeader(`From`, mailConf.Sender)
	m.SetHeader(`To`, mailConf.RecipientList...)
	m.SetHeader(`Subject`, mailConf.Title)
	m.SetBody(`text/html`, mailConf.Body)
	//m.Attach()   //添加附件
	g := gomail.NewDialer(mailConf.SMTPAddr, mailConf.SMTPPort, mailConf.Sender, mailConf.SPassword)
	g.TLSConfig = &tls.Config{InsecureSkipVerify: true}
	err := g.DialAndSend(m)
	if err != nil {
		err = errors.New(fmt.Sprintf("Send Email Fail: %s", err.Error()))
	}
	return err
}
